iT邦幫忙

2023 iThome 鐵人賽

DAY 16
0
Software Development

關於我轉生變成 Go 初學者的這檔事系列 第 16

Day16-[第十五站 : Go再續前緣 float 的愛意滿出]<GOO~

  • 分享至 

  • xImage
  •  

前言

沒錯這一篇看標題就知道,這一回我們要再次講解到 Go 的 float,為什麼要在講解呢? 因為我相信大家對於上一篇小考的 float 題目感到非常疑惑吧,為什麼程式題第二題的答案會是這麼奇怪的數字呢?

Go 關於 float

話不多說,關於 float 的問題要講到這個就得先來說說 Go 的 float 的浮點數運算標準 ==IEEE 754==

IEEE 754

IEEE 754 也可以稱為是 ==二進位浮點數算術標準==,是20世紀以來最廣泛使用的浮點數運算標準,那 IEEE 754 規範四種浮點數的方式 :

  • 單精度浮點數
  • 雙精度浮點數
  • 延伸單精度浮點數
  • 延伸雙精度浮點數

float 總結

為什麼那題答案會是 12345.988 呢,其實照理來說應該是 12345.987,會變成這樣是因為 Go語言 的 float 自動把值給四捨五入了,所以 12345.9876 取小數點後三位數的 7 那它下一位的數字是 6 所以 Go語言就把四捨五入的方式把 7 變成 8。
簡單來說,例如以下這些數字我要取小數點後三位,它們就會變成以下:

  • 1234.5678 -> 1234.568

  • 42.3010 -> 42.301

  • 77780.3214 -> 77780.321

  • 9018.2018 -> 9018.202

  • 1234.9875 -> 1234.987

結語&預告

經過以上的論述相信大家多多少少都有點概念,

資料來源


上一篇
Day15-[第十四站 : Go小考結束!! 放鬆! 放鬆!]<GOO~
下一篇
Day17-[第十六站 : Go 迴圈的基本功]<GOO~
系列文
關於我轉生變成 Go 初學者的這檔事30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言